package com.gitee.consumer.ribbonRule;

import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @ClassName MyRule
 * @Description    Ribbon 核心组件之一  rule   服务负载均衡的计算规则
 *          1. RoundRobinRule  轮询
 *          2. RandomRule 随机
 *          3. RetryRule 先按照轮询的策略获取服务,如果获取服务失败在指定时间内重试,获取可用服务
 *          4. WeightResponseTimeRule 对轮询进行扩展,响应速度越快的权重越大
 *          5. BestAvailableRule 先过滤由于多次访问服务故障而处于断路器跳闸的状态服务,然后选择一个并发量最小的服务
 *          6. AvaliabliltyFilterRule  先过滤故障实力,在选择并发较小的实例
 *          7. ZoneAvoidanceRule 默认规则 符合判断server所在区域的性能和server的可用性选择服务器
 * @Author xiongchao
 * @Date 2020/12/18 14:32
 **/
@Configuration
public class MyRule {
    @Bean
    public IRule TestRule(){
        return new RandomRule();
    }

}
